/**
 * Bakalarska prace - Inteligentni budik
 * @package sleepCatcher
 * @file SCAlarmRepeat.h
 * @author Jan Pesava - xpesav00
 * @email xpesav00@stud.fit.vutbr.cz
 * @date 24. 12. 2011
 */

#ifndef SCALARMREPEAT_H_
#define SCALARMREPEAT_H_

#include "models/SCBaseModel.h"

using namespace Osp::Base;
using namespace Osp::Base::Collection;

class SCAlarmRepeat : public SCBaseModel
{

// Construct
public:
	SCAlarmRepeat();
	SCAlarmRepeat(int id);
	virtual ~SCAlarmRepeat();
	result Construct();

// Attributes
private:
	bool monday;
	bool tuesday;
	bool wednesday;
	bool thursday;
	bool friday;
	bool saturday;
	bool sunday;

// Methods
public:
	bool GetMonday();
	void SetMonday(bool active);
	bool GetTuesday();
	void SetTuesday(bool active);
	bool GetWednesday();
	void SetWednesday(bool active);
	bool GetThursday();
	void SetThursday(bool active);
	bool GetFriday();
	void SetFriday(bool active);
	bool GetSaturday();
	void SetSaturday(bool active);
	bool GetSunday();
	void SetSunday(bool active);
	HashMapT<String*, bool>* GetAllDays();
	HashMapT<String*, bool>* GetActiveDays();
	String GetActiveDaysStr();
	String GetRepeatStateString();
	bool IsJustWeekend();
	bool IsJustWeekdays();
	bool IsJustOnlyOnce();
	bool IsActiveDay(int day);
	bool IsEveryDays();
	void SetDefaultValues();
	void SetOnlyOnce();
	void SetOnlyWeekend();
	void SetOnlyWeekDays();
	void SetEveryDay();
	void ClearAllDays();
	bool Load();
	bool Save();

// Statics
public:
	static void Delete(int id);

};

#endif /* SCALARMREPEAT_H_ */
